package locadora.negocio;

import locadora.dados.RepositorioItem;
import locadora.dados.RepositorioPessoa;
import locadora.negocio.pessoas.Cliente;
import locadora.negocio.produtos.Item;
import miscelanea.Data;

public class Emprestimo {

	public Emprestimo(){}
	
	/**
	 * Aluga um Item a uma pessoa identificada por uma chave única.
	 * @param chavePessoa chave única de uma Pessoa, no formato XXXXXXXXXXX, onde X representa um algarismo
	 * @param chaveItem chave única do Item a ser alugado
	 * @param dataLocacao data da locação
	 * @param dataDevolucao data de devolução
	 * @throws Exception
	 */
	public static void alugarItem(String chavePessoa, String chaveItem, Data dataLocacao, Data dataDevolucao) throws Exception{
		RepositorioPessoa repositorioPessoa = new RepositorioPessoa();
		RepositorioItem repositorioItem = new RepositorioItem();
		Cliente cliente = (Cliente)repositorioPessoa.busca(chavePessoa);
		Item item = repositorioItem.busca(chaveItem);
		if(cliente == null){
			throw new Exception("Cliente inexistente!!");
		}else if(item == null){
			throw new Exception("Item inexistente!!");
		}else{
			item.setLocador(cliente);
			item.setDataLocacao(dataLocacao);
			item.setDataDevolucao(dataDevolucao);
			cliente.adicionaPendenciaMaterial(Long.decode(chaveItem));
			repositorioPessoa.armazena();
			repositorioItem.armazena();
		}
	}

}
